<?php
    class Salle
    {
        // Champs
        private $nomBatiment = 'Non défini';
        private $nomEtage = 'Non défini';
        private $nomSalle = 'Non défini';
        private $idSalle = 0;
        private $superficie = 0;
        private $places = 0;
        private $hasProjecteur = false;
        
        // Constructeurs
        function __construct($nomBatiment, $nomEtage, $nomSalle, $idSalle, $superficie, $places, $hasProjecteur)
        {
            $this->nomBatiment = $nomBatiment;
            $this->nomEtage = $nomEtage;
            $this->nomSalle = $nomSalle;
            $this->idSalle = $idSalle;
            $this->superficie = $superficie;
            $this->places = $places;
            $this->hasProjecteur = $hasProjecteur;
        }
        
        // Accesseurs
        function __get($champ)
        {
            switch($champ)
            {
                case 'nomBatiment':
                    return $this->nomBatiment;
                    break;
                case 'nomEtage':
                    return $this->nomEtage;
                    break;
                case 'nomSalle':
                    return $this->nomSalle;
                    break;
                case 'idSalle':
                    return $this->idSalle;
                    break;
                case 'superficie':
                    return $this->superficie;
                    break;
                case 'places':
                    return $this->places;
                    break;
                case 'hasProjecteur':
                    return $this->hasProjecteur;
                    break;
                default:
                    return null;
                    break;
            }
        }
        
        function __set($champ, $newValue)
        {
            switch($champ)
            {
                case 'nomBatiment':
                    break;
                case 'nomEtage':
                    break;
                case 'nomSalle':
                    break;
                case 'idSalle':
                    break;
                case 'superficie':
                    break;
                case 'places':
                    break;
                case 'hasProjecteur':
                    break;
                default:
                    break;
            }
        }
        
        // Méthodes
        function __toString()
        {
            return
                'Bâtiment ' .
                $this->nomBatiment . ' [' .
                $this->nomEtage . '] ' .
                $this->nomSalle . ' [' .
                $this->superficie . ' m² ; ' .
                $this->places . ($this->places > 1 ? ' places' : ' place') . ']';
        }
    }
?>